package com.school.entity;

import java.util.ArrayList;
import java.util.List;

/**
 * 教师类：继承Person父类
 */
public class Teacher extends Person {
    // 子类特有属性：所授课程列表（支持多门课）
    private final List<Course> taughtCourses;

    // 构造方法：通过super()调用父类构造
    public Teacher(String id, String name, String gender) {
        super(id, name, gender); // 初始化父类的id、name、gender
        this.taughtCourses = new ArrayList<>(); // 初始化授课列表
    }

    // 开课方法（关联课程与教师）
    public void openCourse(Course course) {
        if (course != null && !taughtCourses.contains(course)) {
            taughtCourses.add(course);
            course.setTeacher(this); // 课程绑定当前教师
            System.out.println(super.name + "（教师）成功开设《" + course.getCourseName() + "》");
        }
    }

    // 重写父类抽象方法：打印教师授课信息
    @Override
    public void printWorksheet() {
        System.out.println("=== 教师授课信息（" + super.name + "，ID：" + super.id + "）===");
        if (taughtCourses.isEmpty()) {
            System.out.println("当前未开设任何课程");
        } else {
            for (Course course : taughtCourses) {
                System.out.println("课程名称：" + course.getCourseName() +
                        " | 上课地点：" + course.getLocation() +
                        " | 上课时间：" + course.getTime() +
                        " | 课程编号：" + course.getCourseId());
            }
        }
        System.out.println("==========================");
    }

}